In systems for editing and producing time-based media projects that include video and audio, it is often useful to manipulate various kinds of data that pertain to the video and audio, but that are not themselves time-based media. Examples of such data and metadata may include: descriptive metadata, such as information about the people involved in a production, the location where video was shot or audio was recorded, and the date when the media was captured; and structural metadata, such as image format/type (e.g., HD, SD), aspect ratio, and bit rate. In contrast to such descriptive and structural metadata, which are not time-based, an increasing range of data is being generated in the form of data streams that are time-synchronized with the audio and video content. Such time-based data are distinct from the audio and video portions of a media project, and represent additional time-based information pertaining to the production and/or subject matter of the media project.
In existing media editing and production systems, time-synchronous data are usually embedded within an audio or video signal. In digital video broadcasts, the data is often placed in the ancillary portion of the signal. In file-based media, such as those generated by cameras, disk recorders, video servers, and other video or audio acquisition and playback devices, the data are present in various forms within the media files, often as embedded portions of the video frames.
Such schemes for handling time-synchronous data streams limit the ability of editors to view, edit or otherwise manipulate the data streams independently of the picture and audio tracks. There is a need to provide a software architecture and framework to support the development of tools for manipulating synchronous data streams within the context of a real-time, multi-track, non-linear editing production system.